package com.songlanyun.modules.shop.model.dto;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.songlanyun.common.drive.ValueObject;
import com.songlanyun.common.validator.group.AddGroup;
import com.songlanyun.common.validator.group.UpdateGroup;
import com.songlanyun.modules.user.entity.SysUserEntityDTO;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 会员申请商家表
 *
 * @author wuchao
 * @email sunlightcs@gmail.com
 * @date 2020-12-17 15:05:27
 */
@Data
public class ShopApplyDTO implements ValueObject {

    /**
     *
     */
    private Long id;

    /**
     * 企业名称
     */
    @NotBlank(message = "企业名称不能为空")
    @Length(min = 1, max = 16, message = "企业名称长度在1-16个字")
    private String companyName;
    /**
     * 统一信用代码
     */
//    @NotBlank(message = "企统一信用代码不能为空")
//    @Length(min = 1, max = 50, message = "统一信用代码长度在1-50个字")
    private String creditCode;
    /**
     * 经营范围
     */
//    @NotBlank(message = "经营范围不能为空")
//    @Length(min = 1, max = 50, message = "经营范围长度在1-50个字")
    private String businessScope;
    /**
     * 住址
     */
//    @NotBlank(message = "住址不能为空")
//    @Length(min = 1, max = 100, message = "住址长度在1-100个字")
    private String companyAddress;
    /**
     * 企业省市区
     */
    @NotBlank(message = "企业省市区不能为空")
    @Length(min = 1, max = 500, message = "住址长度在1-500个字")
    private String province;
    /**
     * 法代名称
     */
    @NotBlank(message = "法代名称不能为空")
    @Length(min = 1, max = 8, message = "法代名称长度在1-8个字")
    private String legalRepresentative;
    /**
     * 法代证件类型（0身份证、1护照）
     */
//    @NotNull(message = "法代证件类型不能为空")
    private Integer idType;
    /**
     * 法代证件号码
     */
//    @NotBlank(message = "法代证件号码不能为空")
//    @Length(min = 1, max = 50, message = "法代证件号码长度在1-50个字")
    private String idNumber;
    /**
     * 法代手机号
     */
    @NotBlank(message = "法代手机号不能为空")
    @Pattern(regexp = "^[1][1,2,3,4,5,6,7,8,9][0-9]{9}$", message = "手机号格式有误")
    private String lrMobile;
    /**
     * 法代邮箱
     */
//    @NotBlank(message = "法代邮箱不能为空")
//    @Email(message = "邮箱格式不正确")
    private String lrEmail;
    /**
     * 商家经营执照
     */
//    @NotBlank(message = "商家经营执照不能为空")
    private String businessLicenseImages;
    /**
     * 身份证正反面
     */
//    @NotBlank(message = "身份证正反面不能为空")
    private String identtyImages;
    /**
     * 省编号
     */
//    @NotBlank(message = "省编号不能为空")
//    @Length(min = 1, max = 20, message = "省编号长度在1-20个字")
    private String provinceCode;
    /**
     * 省的名称
     */
//    @NotBlank(message = "省的名称不能为空")
//    @Length(min = 1, max = 30, message = "省的名称长度在1-30个字")
    private String provinceName;
    /**
     * 市编号
     */
//    @NotBlank(message = "市编号不能为空")
    @Length(max = 20, message = "市编号长度在1-20个字")
    private String cityCode;
    /**
     * 市名称
     */
//    @NotBlank(message = "市名称不能为空")
    @Length(max = 30, message = "市名称长度在1-30个字")
    private String cityName;
    /**
     * 区编号
     */
    @Length(max = 20, message = "区编号长度在20个字以内")
    private String areaCode;
    /**
     * 区名称
     */
    @Length(max = 30, message = "区名称长度在1-30个字以内")
    private String areaName;


    /**
     * 营业时间
     */
//    @NotBlank(message = "营业时间不能为空")
//    @Length(min = 1, max = 200, message = "营业时间在1-200个字")
    private String businessHours;
    /**
     * 时间段
     */
//    @NotBlank(message = "时间段不能为空")
//    @Length(min = 1, max = 100, message = "时间段在1-100个字")
    private String timeQuantum;
    /**
     * 微信经度
     */
//    @NotBlank(message = "微信经度不能为空")
//    @Length(min = 1, max = 30, message = "微信经度长度在1-30个字")
    private String txLongitude;
    /**
     * 微信纬度
     */
//    @NotBlank(message = "微信纬度不能为空")
//    @Length(min = 1, max = 30, message = "微信纬度长度在1-30个字")
    private String txLatitude;
    /**
     * 店铺名称
     */
    @NotBlank(message = "店铺名称不能为空")
    @Length(min = 1, max = 16, message = "店铺名称长度在1-16个字")
    private String shopName;
    /**
     * 店铺地图标点
     */
//    @NotBlank(message = "店铺地图标点不能为空")
//    @Length(min = 1, max = 100, message = "店铺地图标点长度在1-100个字")
    private String mapPunctuation;
    /**
     * 店铺地址
     */
//    @NotBlank(message = "店铺地址不能为空")
//    @Length(min = 1, max = 100, message = "店铺地址长度在1-100个字")
    private String address;
    /**
     * 店铺logo
     */
    @NotBlank(message = "店铺logo不能为空")
    private String logo;
    /**
     * 店铺图片
     */
//    @NotBlank(message = "店铺图片不能为空")
    private String storeImages;
    /**
     * 店铺简介
     */
//    @NotBlank(message = "店铺简介不能为空")
//    @Length(min = 1, max = 400, message = "店铺简介长度在1-400个字")
    private String remark;
    /**
     * 联系电话
     */
//    @NotBlank(message = "联系电话不能为空")
//    @Pattern(regexp = "^[1][1,2,3,4,5,6,7,8,9][0-9]{9}$", message = "手机号格式有误")
    private String mobile;
    /**
     * 审核状态（0待审核，1审核通过，2审核不通过）
     */
    private Integer auditStatus;
    /**
     * 审核意见
     */
    @Length(min = 0, max = 400, message = "标题长度在400个字以内")
    private String auditRemark;

    /**
     * 商名主体名称
     */
//    @NotBlank(message = "商名主体名称不能为空")
//    @Length(min = 1, max = 20, message = "商名主体名称长度在1-20个字")
    private String mainName;
    /**
     * 客服电话最多30个字
     */
    @NotBlank(message = "客服电话不能为空")
    @Length(min = 1, max = 30, message = "客服电话在1-30个字")
    private String customerServicePhone;
    /**
     * 场地说明
     */
//    @NotBlank(message = "场地说明不能为空")
//    @Length(min = 1, max = 200, message = "场地说明在1-200个字")
    private String placeRemark;
    /**
     * 负者人姓名
     */
//    @NotBlank(message = "负责人姓名不能为空")
//    @Length(min = 1, max = 5, message = "负责人姓名在1-5个字")
    private String loser;

    private SysUserEntityDTO user;

    /**
     * 打赏比例
     */
    @DecimalMax(value = "100", message = "打赏比例不能超过100")
    private BigDecimal rewardRatio;

    /**
     * 优惠信息
     */
    private String specialOffers;

    /**
     * 是否是联盟商家
     */
    private Boolean unionBusiness;

}
